package org.redis.cluster.config;

import java.io.Serializable;

import org.apache.commons.beanutils.ConvertUtils;

public class SystemPropertyConfig implements Serializable {

	private String name;
	private String value;
	
	public SystemPropertyConfig(String name,String value) {
		this.name=name;
		this.value=value;
	}

	public String getName() {
		return name;
	}

	public String getValue() {
		return value;
	}

	public <T> T getValue(Class<T> type) {
		return (T) ConvertUtils.convert(getValue(), type);
	}

	public <T> T getValue(Class<T> type, T defaultValue) {
		if(getValue()==null) {
			return defaultValue;
		}
		
		return getValue(type);
	}
	
	public void setName(String name) {
		this.name = name;
	}
	public void setValue(String value) {
		this.value = value;
	}
	
	@Override
	public String toString() {
		return String.format("{name:%s,value:%s}", 
				getName(),getValue());
	}
}